/******************************************************************************
 * * setting_call.h - data structure for setting call sub- module
 *
 * *(C) Copyright 2019 Asr International Ltd.
 * * All Rights Reserved
 * ******************************************************************************/
#ifndef SETTING_CALL_H
#define SETTING_CALL_H

#ifdef __cplusplus
extern "C" {
#endif

typedef enum
{
    SETTING_DIVERT_NO_CONDITION = 0,                                            // divert all incoming call
    SETTING_DIVERT_IF_BUSY,                                                     // divert if busy
    SETTING_DIVERT_IF_NOT_REACH,                                                // divert if call not reach
    SETTING_DIVERT_IF_NO_ANSWER,                                                // divert if no answer
    SETTING_DIVERT_CANCEL_ALL,                                                  // cancel all diverts
    SETTING_CALL_WAITING
} SETTING_SS_SERVICE_TYPE;

typedef enum
{
    SETTING_DIVERT_ACTION_CANCEL = 0,
    SETTING_DIVERT_ACTION_ACTIVE,
    SETTING_DIVERT_ACTION_CHECK_STATUS,
    SETTING_DIVERT_ACTION_SELECT_DELAY_TIME
} SETTING_CALL_DIVERT_ACTION_TYPE;

typedef struct
{
    BOOL                            AutoRedialOn;                               // true means auto redial on
    MMI_MODEM_SIM_ID                OperationSimId;                             // Sim id in operating for call waiting and divert
    SETTING_SS_SERVICE_TYPE         OperatingSS;                                // SS type in operating
    SETTING_CALL_DIVERT_ACTION_TYPE OperatingAction;                            // Call Divert Action in operating
} Setting_Call_Setting_Mng_t;

extern Setting_Call_Setting_Mng_t g_SettingCallSettingMng;                      // for call setting management

#ifdef __cplusplus
} /* extern "C" */
#endif

#endif /*SETTING_CALL_H*/
